package com.demo.webflux.spring5core.framework.aop.aspect;

import java.lang.reflect.Method;

/**这是aop的基本组成单元，可以理解为这是某一个业务方法的附加信息。
 * 可想而知，切点应该包含业务方法本身、实参列表和方法所属的实例对象，还可以在JoinPoint中添加自定义属性
 * @author zhangsulei
 *
 */
public interface JoinPoint {

	Method getMethod(); // 业务方法本身

	Object[] getArguments(); // 该方法的实参列表

	Object getThis(); // 该方法所属的实例对象

	void setUserAttribute(String key, Object value); // 在JoinPoint中添加自定义属性

	Object getUserAttribute(String key); // 从已添加的自定义属性中获取一个属性值

}
